@@ -1,19 +1,31 @@ |
||
| 1 | 1 |
var logger = require('winston');
|
| 2 |
+var sensor = require("ds18x20")
|
|
| 2 | 3 |
|
| 3 | 4 |
module.exports.start = function(channel){
|
| 4 | 5 |
logger.info("Starting External temperature module");
|
| 5 |
- setInterval(function () {
|
|
| 6 |
- var temperature = readSensor(); |
|
| 7 |
- channel.emit('temperature_external', { temperature: temperature });
|
|
| 8 |
- }, 1000); |
|
| 6 |
+ var isLoaded = sensor.isDriverLoaded(); |
|
| 7 |
+ if(isLoaded){
|
|
| 8 |
+ console.log(isLoaded); |
|
| 9 |
+ var devices = sensor.list(); |
|
| 10 |
+ console.log(devices); |
|
| 11 |
+ setInterval(function () {
|
|
| 12 |
+ var temperature = readSensor(devices, channel); |
|
| 13 |
+ }, 5000); |
|
| 14 |
+ } |
|
| 15 |
+ |
|
| 9 | 16 |
|
| 10 | 17 |
} |
| 11 | 18 |
|
| 12 |
-function readSensor() {
|
|
| 19 |
+function readSensor(devices) {
|
|
| 13 | 20 |
// Read Sensor data |
| 21 |
+ sensor.get(devices[devices.length - 1], function(err, temp){
|
|
| 22 |
+ if(err){
|
|
| 23 |
+ console.log(err); |
|
| 24 |
+ } |
|
| 25 |
+ channel.emit('temperature_external', { temperature: temp });
|
|
| 26 |
+ }); |
|
| 14 | 27 |
// give random data for testing |
| 15 |
- var high = 25; |
|
| 16 |
- var low = 23; |
|
| 17 |
- var temp = Math.random() * (high - low) + low |
|
| 18 |
- return temp |
|
| 28 |
+ // var high = 25; |
|
| 29 |
+ // var low = 23; |
|
| 30 |
+ // var temp = Math.random() * (high - low) + low |
|
| 19 | 31 |
} |
@@ -10,6 +10,7 @@ |
||
| 10 | 10 |
"license": "ISC", |
| 11 | 11 |
"dependencies": {
|
| 12 | 12 |
"body-parser": "^1.17.2", |
| 13 |
+ "ds18x20": "^0.2.0", |
|
| 13 | 14 |
"ejs": "^2.5.7", |
| 14 | 15 |
"express": "^4.15.4", |
| 15 | 16 |
"express-ejs-layouts": "^2.3.1", |